Modern computing systems often utilize large-scale and/or complex software systems. Typical examples of these software systems include operating systems, application servers, and other complex software applications. A key factor in developing and successfully marketing a complex software application is maintaining the quality of the application through a quality control process. A software application typically includes a common code base; that is, one that is shared by as many programmers on a team as possible. The common code base can be used to generate an object code that may be run on each of the computing programs of interest to the programmers. This technique facilitates the ease with which a program may be tested, enhances the likelihood that it will behave similarly on all computing platforms of interest, and reduces the efforts the team of programmers will require to maintain and enhance the program.
When examining a suspected copy of a product derived from a common code base of a software application, it is often difficult to determine from which specific product the copy has been made, especially when there are multiple versions of each product. Hence, it is especially difficult to ensure that the product code is identical to the suspicious code, because the code can be written in different languages for different computing platforms. The tracking of software source code becomes much more critical during the development of large-scale, complex software systems by multiple software developers in a distributed software development system.
The majority of prior art methods utilized with respect to many large software projects simply retain a product specific marker for each different product on each computing platform. This approach requires a great deal of self-discipline on the part of the developers and often leads to mistakes and inefficiencies, since it requires code to be inserted that is specific to each computing platform of interest. Another disadvantage of this method is that repeating this approach for each and every version of the software product that has been created is time consuming and labor intensive.
Based on the foregoing it is believed that a need exists for an improved method and system for automatically identifying the exact product and version of a suspected software copy.